itk_module_test()
set(
  ITKImageIntensityTests
  itkBoundedReciprocalImageFilterTest.cxx
  itkCosImageFilterAndAdaptorTest.cxx
  itkDiscreteHessianGaussianImageFunctionTest.cxx
  itkDiscreteGradientMagnitudeGaussianImageFunctionTest.cxx
  itkDiscreteGaussianDerivativeImageFunctionTest.cxx
  itkExpImageFilterAndAdaptorTest.cxx
  itkVectorRescaleIntensityImageFilterTest.cxx
  itkTernaryMagnitudeSquaredImageFilterTest.cxx
  itkTernaryOperatorImageFilterTest.cxx
  itkMinimumImageFilterTest.cxx
  itkLog10ImageFilterAndAdaptorTest.cxx
  itkVectorIndexSelectionCastImageFilterTest.cxx
  itkInvertIntensityImageFilterTest.cxx
  itkSymmetricEigenAnalysisImageFilterTest.cxx
  itkEdgePotentialImageFilterTest.cxx
  itkComplexToModulusFilterAndAdaptorTest.cxx
  itkAddImageAdaptorTest.cxx
  itkAndImageFilterTest.cxx
  itkAdaptImageFilterTest2.cxx
  itkLogImageFilterAndAdaptorTest.cxx
  itkNotImageFilterTest.cxx
  itkImageAdaptorNthElementTest.cxx
  itkConstrainedValueAdditionImageFilterTest.cxx
  itkAtanImageFilterAndAdaptorTest.cxx
  itkMaskNegatedImageFilterTest.cxx
  itkAddImageFilterTest.cxx
  itkAddImageFilterTest2.cxx
  itkAddImageFilterFrameTest.cxx
  itkPowImageFilterTest.cxx
  itkMultiplyImageFilterTest.cxx
  itkWeightedAddImageFilterTest.cxx
  itkRescaleIntensityImageFilterTest.cxx
  itkNormalizeImageFilterTest.cxx
  itkNaryAddImageFilterTest.cxx
  itkShiftScaleImageFilterTest.cxx
  itkComplexToPhaseFilterAndAdaptorTest.cxx
  itkIntensityWindowingImageFilterTest.cxx
  itkTernaryMagnitudeImageFilterTest.cxx
  itkAbsImageFilterAndAdaptorTest.cxx
  itkMaximumImageFilterTest.cxx
  itkBinaryMagnitudeImageFilterTest.cxx
  itkMatrixIndexSelectionImageFilterTest.cxx
  itkSquareImageFilterTest.cxx
  itkRGBToVectorAdaptImageFilterTest.cxx
  itkComplexToRealFilterAndAdaptorTest.cxx
  itkNaryMaximumImageFilterTest.cxx
  itkAtan2ImageFilterTest.cxx
  itkSqrtImageFilterAndAdaptorTest.cxx
  itkAsinImageFilterAndAdaptorTest.cxx
  itkMaskImageFilterTest.cxx
  itkHistogramMatchingImageFilterTest.cxx
  itkAcosImageFilterAndAdaptorTest.cxx
  itkExpNegativeImageFilterAndAdaptorTest.cxx
  itkTanImageFilterAndAdaptorTest.cxx
  itkSigmoidImageFilterTest.cxx
  itkDivideImageFilterTest.cxx
  itkDivideImageFilterTest2.cxx
  itkDivideOrZeroOutImageFilterTest.cxx
  itkAdaptImageFilterTest.cxx
  itkOrImageFilterTest.cxx
  itkRGBToLuminanceImageFilterAndAdaptorTest.cxx
  itkXorImageFilterTest.cxx
  itkSubtractImageFilterTest.cxx
  itkComplexToImaginaryFilterAndAdaptorTest.cxx
  itkVectorToRGBImageAdaptorTest.cxx
  itkSinImageFilterAndAdaptorTest.cxx
  itkPolylineMask2DImageFilterTest.cxx
  itkPolylineMaskImageFilterTest.cxx
  itkPromoteDimensionImageTest.cxx
  itkModulusImageFilterTest.cxx
  itkVectorMagnitudeImageFilterTest.cxx
  itkNormalizeToConstantImageFilterTest.cxx
  itkEqualTest.cxx
  itkNotEqualTest.cxx
  itkGreaterEqualTest.cxx
  itkGreaterTest.cxx
  itkLessEqualTest.cxx
  itkLessTest.cxx
  itkClampImageFilterTest.cxx
  itkNthElementPixelAccessorTest2.cxx
  itkMagnitudeAndPhaseToComplexImageFilterTest.cxx
  itkRoundImageFilterTest.cxx
)

if(NOT ITK_LEGACY_REMOVE)
  list(APPEND ITKImageIntensityTests itkVectorExpandImageFilterTest.cxx)
endif()

# Disable optimization on the tests below to avoid possible
# optimization bugs in some compilers. This option will appear on the
# command line after any other optimization flag (including those from
# CMAKE_CXX_FLAGS) which means that on gcc, MSVC, and the Intel
# compiler, it will override any other optimization flag.
if(DEFINED ITK_CXX_DISABLE_OPTIMIZATION_FLAG)
  set_source_files_properties(
    itkClampImageFilterTest.cxx
    PROPERTIES
      COMPILE_FLAGS
        ${ITK_CXX_DISABLE_OPTIMIZATION_FLAG}
  )
endif()

createtestdriver(ITKImageIntensity "${ITKImageIntensity-Test_LIBRARIES}" "${ITKImageIntensityTests}")

set(TEMP ${ITK_TEST_OUTPUT_DIR})

itk_add_test(
  NAME
  itkBoundedReciprocalImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  itkBoundedReciprocalImageFilterTest
  DATA{${ITK_DATA_ROOT}/Input/Gourds.png}
)
itk_add_test(
  NAME
  itkCosImageFilterAndAdaptorTest
  COMMAND
  ITKImageIntensityTestDriver
  itkCosImageFilterAndAdaptorTest
)
itk_add_test(
  NAME
  itkVectorRescaleIntensityImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  itkVectorRescaleIntensityImageFilterTest
)
itk_add_test(
  NAME
  itkTernaryMagnitudeSquaredImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  itkTernaryMagnitudeSquaredImageFilterTest
)
itk_add_test(
  NAME
  itkTernaryOperatorImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  itkTernaryOperatorImageFilterTest
)
itk_add_test(
  NAME
  itkMinimumImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  itkMinimumImageFilterTest
)
itk_add_test(
  NAME
  itkLog10ImageFilterAndAdaptorTest
  COMMAND
  ITKImageIntensityTestDriver
  itkLog10ImageFilterAndAdaptorTest
)
itk_add_test(
  NAME
  itkVectorIndexSelectionCastImageFilterTest1
  COMMAND
  ITKImageIntensityTestDriver
  --compare
  DATA{${ITK_DATA_ROOT}/Baseline/BasicFilters/itkVectorIndexSelectionCastImageFilterTest1.mha}
  ${ITK_TEST_OUTPUT_DIR}/itkVectorIndexSelectionCastImageFilterTest1.mha
  itkVectorIndexSelectionCastImageFilterTest
  DATA{${ITK_DATA_ROOT}/Input/RGBTestImage.tif}
  ${ITK_TEST_OUTPUT_DIR}/itkVectorIndexSelectionCastImageFilterTest1.mha
  0
)
itk_add_test(
  NAME
  itkVectorIndexSelectionCastImageFilterTest2
  COMMAND
  ITKImageIntensityTestDriver
  --compare
  DATA{${ITK_DATA_ROOT}/Baseline/BasicFilters/itkVectorIndexSelectionCastImageFilterTest2.mha}
  ${ITK_TEST_OUTPUT_DIR}/itkVectorIndexSelectionCastImageFilterTest2.mha
  itkVectorIndexSelectionCastImageFilterTest
  DATA{${ITK_DATA_ROOT}/Input/RGBTestImage.tif}
  ${ITK_TEST_OUTPUT_DIR}/itkVectorIndexSelectionCastImageFilterTest2.mha
  1
)
itk_add_test(
  NAME
  itkVectorIndexSelectionCastImageFilterTest3
  COMMAND
  ITKImageIntensityTestDriver
  --compare
  DATA{${ITK_DATA_ROOT}/Baseline/BasicFilters/itkVectorIndexSelectionCastImageFilterTest3.mha}
  ${ITK_TEST_OUTPUT_DIR}/itkVectorIndexSelectionCastImageFilterTest3.mha
  itkVectorIndexSelectionCastImageFilterTest
  DATA{${ITK_DATA_ROOT}/Input/RGBTestImage.tif}
  ${ITK_TEST_OUTPUT_DIR}/itkVectorIndexSelectionCastImageFilterTest3.mha
  2
)
itk_add_test(
  NAME
  itkInvertIntensityImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  --compare
  DATA{${ITK_DATA_ROOT}/Baseline/BasicFilters/InvertIntensityImageFilterTest.png}
  ${ITK_TEST_OUTPUT_DIR}/InvertIntensityImageFilterTest.png
  itkInvertIntensityImageFilterTest
  DATA{${ITK_DATA_ROOT}/Input/cthead1.png}
  ${ITK_TEST_OUTPUT_DIR}/InvertIntensityImageFilterTest.png
)
itk_add_test(
  NAME
  itkSymmetricEigenAnalysisImageFilterTestOrderByValue
  COMMAND
  ITKImageIntensityTestDriver
  --compare-MD5
  ${ITK_TEST_OUTPUT_DIR}/itkSymmetricEigenAnalysisImageFilterTestOrderByValue.png
  8e3e4221d36144133d2f6692b2ad980b
  --compare-MD5
  ${ITK_TEST_OUTPUT_DIR}/itkSymmetricEigenAnalysisFixedDimensionImageFilterTestOrderByValue.png
  8e3e4221d36144133d2f6692b2ad980b
  itkSymmetricEigenAnalysisImageFilterTest
  ${ITK_TEST_OUTPUT_DIR}/itkSymmetricEigenAnalysisImageFilterTestOrderByValue.png
  1
  ${ITK_TEST_OUTPUT_DIR}/itkSymmetricEigenAnalysisFixedDimensionImageFilterTestOrderByValue.png
)
itk_add_test(
  NAME
  itkSymmetricEigenAnalysisImageFilterTestOrderByMagnitude
  COMMAND
  ITKImageIntensityTestDriver
  --compare-MD5
  ${ITK_TEST_OUTPUT_DIR}/itkSymmetricEigenAnalysisImageFilterTestOrderByMagnitude.png
  8e3e4221d36144133d2f6692b2ad980b
  --compare-MD5
  ${ITK_TEST_OUTPUT_DIR}/itkSymmetricEigenAnalysisFixedDimensionImageFilterTestOrderByMagnitude.png
  8e3e4221d36144133d2f6692b2ad980b
  itkSymmetricEigenAnalysisImageFilterTest
  ${ITK_TEST_OUTPUT_DIR}/itkSymmetricEigenAnalysisImageFilterTestOrderByMagnitude.png
  2
  ${ITK_TEST_OUTPUT_DIR}/itkSymmetricEigenAnalysisFixedDimensionImageFilterTestOrderByMagnitude.png
)
# FixedDimension (with Eigen3) orders by value by default.
itk_add_test(
  NAME
  itkSymmetricEigenAnalysisImageFilterTestDoNotOrder
  COMMAND
  ITKImageIntensityTestDriver
  --compare-MD5
  ${ITK_TEST_OUTPUT_DIR}/itkSymmetricEigenAnalysisImageFilterTestDoNotOrder.png
  8e3e4221d36144133d2f6692b2ad980b
  --compare-MD5
  ${ITK_TEST_OUTPUT_DIR}/itkSymmetricEigenAnalysisFixedDimensionImageFilterTestDoNotOrder.png
  8e3e4221d36144133d2f6692b2ad980b
  itkSymmetricEigenAnalysisImageFilterTest
  ${ITK_TEST_OUTPUT_DIR}/itkSymmetricEigenAnalysisImageFilterTestDoNotOrder.png
  3
  ${ITK_TEST_OUTPUT_DIR}/itkSymmetricEigenAnalysisFixedDimensionImageFilterTestDoNotOrder.png
)
itk_add_test(
  NAME
  itkEdgePotentialImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  itkEdgePotentialImageFilterTest
)
itk_add_test(
  NAME
  itkComplexToModulusFilterAndAdaptorTest
  COMMAND
  ITKImageIntensityTestDriver
  itkComplexToModulusFilterAndAdaptorTest
)
itk_add_test(
  NAME
  itkAddImageAdaptorTest
  COMMAND
  ITKImageIntensityTestDriver
  itkAddImageAdaptorTest
)
itk_add_test(
  NAME
  itkAndImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  --compare-MD5
  ${ITK_TEST_OUTPUT_DIR}/itkAndImageFilterTest.png
  93d46ee3d5e0c157e2b2d27977ae4d0f
  itkAndImageFilterTest
  ${ITK_TEST_OUTPUT_DIR}/itkAndImageFilterTest.png
)
itk_add_test(
  NAME
  itkAdaptImageFilterTest2
  COMMAND
  ITKImageIntensityTestDriver
  itkAdaptImageFilterTest2
)
itk_add_test(
  NAME
  itkLogImageFilterAndAdaptorTest
  COMMAND
  ITKImageIntensityTestDriver
  itkLogImageFilterAndAdaptorTest
)
itk_add_test(
  NAME
  itkNotImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  itkNotImageFilterTest
)
itk_add_test(
  NAME
  itkImageAdaptorNthElementTest
  COMMAND
  ITKImageIntensityTestDriver
  itkImageAdaptorNthElementTest
)
itk_add_test(
  NAME
  itkConstrainedValueAdditionImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  --compare-MD5
  ${ITK_TEST_OUTPUT_DIR}/itkConstrainedValueAdditionImageFilterTest.png
  6ef609d089e93e2eed8f089f75bc67fb
  itkConstrainedValueAdditionImageFilterTest
  ${ITK_TEST_OUTPUT_DIR}/itkConstrainedValueAdditionImageFilterTest.png
)
itk_add_test(
  NAME
  itkAtanImageFilterAndAdaptorTest
  COMMAND
  ITKImageIntensityTestDriver
  itkAtanImageFilterAndAdaptorTest
)
itk_add_test(
  NAME
  itkMaskNegatedImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  itkMaskNegatedImageFilterTest
)
itk_add_test(
  NAME
  itkAddImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  itkAddImageFilterTest
)
itk_add_test(
  NAME
  itkAddImageFilterTest2
  COMMAND
  ITKImageIntensityTestDriver
  itkAddImageFilterTest2
  DATA{${ITK_DATA_ROOT}/Input/HeadMRVolume.mha}
  ${TEMP}/itkAddImageFilterTest2.mha
)
itk_add_test(
  NAME
  itkAddImageFilterFrameTest
  COMMAND
  ITKImageIntensityTestDriver
  itkAddImageFilterFrameTest
)
itk_add_test(
  NAME
  itkPowImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  itkPowImageFilterTest
)
itk_add_test(
  NAME
  itkMultiplyImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  itkMultiplyImageFilterTest
)
itk_add_test(
  NAME
  itkWeightedAddImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  itkWeightedAddImageFilterTest
  0.4
)
itk_add_test(
  NAME
  itkRescaleIntensityImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  itkRescaleIntensityImageFilterTest
)

itk_add_test(
  NAME
  itkNormalizeImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  --redirectOutput
  ${TEMP}/itkNormalizeImageFilterTest.txt
  itkNormalizeImageFilterTest
)
set_tests_properties(
  itkNormalizeImageFilterTest
  PROPERTIES
    ATTACHED_FILES_ON_FAIL
      ${TEMP}/itkNormalizeImageFilterTest.txt
)

itk_add_test(
  NAME
  itkNaryAddImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  itkNaryAddImageFilterTest
)
itk_add_test(
  NAME
  itkShiftScaleImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  itkShiftScaleImageFilterTest
)
itk_add_test(
  NAME
  itkComplexToPhaseFilterAndAdaptorTest
  COMMAND
  ITKImageIntensityTestDriver
  itkComplexToPhaseFilterAndAdaptorTest
)
itk_add_test(
  NAME
  itkIntensityWindowingImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  itkIntensityWindowingImageFilterTest
)
itk_add_test(
  NAME
  itkTernaryMagnitudeImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  --compare-MD5
  ${ITK_TEST_OUTPUT_DIR}/itkTernaryMagnitudeImageFilterTest.png
  7f199e1363c4b754eb03cf4d0ba8d343
  itkTernaryMagnitudeImageFilterTest
  ${ITK_TEST_OUTPUT_DIR}/itkTernaryMagnitudeImageFilterTest.png
)
itk_add_test(
  NAME
  itkAbsImageFilterAndAdaptorTest
  COMMAND
  ITKImageIntensityTestDriver
  itkAbsImageFilterAndAdaptorTest
)
itk_add_test(
  NAME
  itkMaximumImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  itkMaximumImageFilterTest
)
itk_add_test(
  NAME
  itkBinaryMagnitudeImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  itkBinaryMagnitudeImageFilterTest
)
itk_add_test(
  NAME
  itkMatrixIndexSelectionImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  --compare
  DATA{${ITK_DATA_ROOT}/Baseline/BasicFilters/MatrixIndexSelectionImageFilterTest.png}
  ${ITK_TEST_OUTPUT_DIR}/MatrixIndexSelectionImageFilterTest.png
  itkMatrixIndexSelectionImageFilterTest
  ${ITK_TEST_OUTPUT_DIR}/MatrixIndexSelectionImageFilterTest.png
)
itk_add_test(
  NAME
  itkSquareImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  itkSquareImageFilterTest
)
itk_add_test(
  NAME
  itkRGBToVectorAdaptImageFilterTest.cxx
  COMMAND
  ITKImageIntensityTestDriver
  itkRGBToVectorAdaptImageFilterTest
)
itk_add_test(
  NAME
  itkComplexToRealFilterAndAdaptorTest
  COMMAND
  ITKImageIntensityTestDriver
  itkComplexToRealFilterAndAdaptorTest
)
itk_add_test(
  NAME
  itkNaryMaximumImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  itkNaryMaximumImageFilterTest
)
itk_add_test(
  NAME
  itkAtan2ImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  itkAtan2ImageFilterTest
)
itk_add_test(
  NAME
  itkSqrtImageFilterAndAdaptorTest
  COMMAND
  ITKImageIntensityTestDriver
  itkSqrtImageFilterAndAdaptorTest
)
itk_add_test(
  NAME
  itkAsinImageFilterAndAdaptorTest
  COMMAND
  ITKImageIntensityTestDriver
  itkAsinImageFilterAndAdaptorTest
)
itk_add_test(
  NAME
  itkMaskImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  itkMaskImageFilterTest
)
itk_add_test(
  NAME
  itkHistogramMatchingImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  itkHistogramMatchingImageFilterTest
)
itk_add_test(
  NAME
  itkAcosImageFilterAndAdaptorTest
  COMMAND
  ITKImageIntensityTestDriver
  itkAcosImageFilterAndAdaptorTest
)
itk_add_test(
  NAME
  itkExpNegativeImageFilterAndAdaptorTest
  COMMAND
  ITKImageIntensityTestDriver
  itkExpNegativeImageFilterAndAdaptorTest
)
itk_add_test(
  NAME
  itkExpImageFilterAndAdaptorTest
  COMMAND
  ITKImageIntensityTestDriver
  itkExpImageFilterAndAdaptorTest
)
itk_add_test(
  NAME
  itkTanImageFilterAndAdaptorTest
  COMMAND
  ITKImageIntensityTestDriver
  itkTanImageFilterAndAdaptorTest
)
itk_add_test(
  NAME
  itkSigmoidImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  itkSigmoidImageFilterTest
)
itk_add_test(
  NAME
  itkDivideImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  itkDivideImageFilterTest
)
itk_add_test(
  NAME
  itkDivideImageFilterTest2
  COMMAND
  ITKImageIntensityTestDriver
  itkDivideImageFilterTest2
)
itk_add_test(
  NAME
  itkDivideOrZeroOutImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  itkDivideOrZeroOutImageFilterTest
)
if(NOT ITK_LEGACY_REMOVE)
  itk_add_test(
      NAME
      itkVectorExpandImageFilterTest
      COMMAND
      ITKImageIntensityTestDriver
      itkVectorExpandImageFilterTest
  )
endif()
itk_add_test(
  NAME
  itkAdaptImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  itkAdaptImageFilterTest
)
itk_add_test(
  NAME
  itkOrImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  --compare-MD5
  ${ITK_TEST_OUTPUT_DIR}/itkOrImageFilterTest.png
  817d6d96c1c07cb12bfc200134aa57ba
  itkOrImageFilterTest
  ${ITK_TEST_OUTPUT_DIR}/itkOrImageFilterTest.png
)
itk_add_test(
  NAME
  itkRGBToLuminanceImageFilterAndAdaptorTest.cxx
  COMMAND
  ITKImageIntensityTestDriver
  itkRGBToLuminanceImageFilterAndAdaptorTest
)
itk_add_test(
  NAME
  itkXorImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  --compare-MD5
  ${ITK_TEST_OUTPUT_DIR}/itkXorImageFilterTest.png
  3b5b9852567ef7618aac7f5f2d74ef74
  itkXorImageFilterTest
  ${ITK_TEST_OUTPUT_DIR}/itkXorImageFilterTest.png
)
itk_add_test(
  NAME
  itkSubtractImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  itkSubtractImageFilterTest
)
itk_add_test(
  NAME
  itkComplexToImaginaryFilterAndAdaptorTest
  COMMAND
  ITKImageIntensityTestDriver
  itkComplexToImaginaryFilterAndAdaptorTest
)
itk_add_test(
  NAME
  itkVectorToRGBImageAdaptorTest
  COMMAND
  ITKImageIntensityTestDriver
  itkVectorToRGBImageAdaptorTest
)
itk_add_test(
  NAME
  itkSinImageFilterAndAdaptorTest
  COMMAND
  ITKImageIntensityTestDriver
  itkSinImageFilterAndAdaptorTest
)
itk_add_test(
  NAME
  itkPolylineMask2DImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  itkPolylineMask2DImageFilterTest
  DATA{${ITK_DATA_ROOT}/Input/cthead1.png}
  ${ITK_TEST_OUTPUT_DIR}/itkPolylineMask2DImageFilterTest.png
)
itk_add_test(
  NAME
  itkPolylineMaskImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  --compare
  DATA{Baseline/PolylineMaskImageFilterTest.mha}
  ${ITK_TEST_OUTPUT_DIR}/PolylineMaskImageFilterTest.mha
  itkPolylineMaskImageFilterTest
  ${ITK_TEST_OUTPUT_DIR}/PolylineMaskImageFilterTest.mha
)
itk_add_test(
  NAME
  itkPromoteDimensionImageTest
  COMMAND
  ITKImageIntensityTestDriver
  --compare
  DATA{${ITK_DATA_ROOT}/Baseline/BasicFilters/PromoteDimensionImageTest.mhd,PromoteDimensionImageTest.raw}
  ${ITK_TEST_OUTPUT_DIR}/PromoteDimensionImageTest.mhd
  itkPromoteDimensionImageTest
  DATA{${ITK_DATA_ROOT}/Input/VisibleWomanEyeSlice.png}
  ${ITK_TEST_OUTPUT_DIR}/PromoteDimensionImageTest.mhd
)
itk_add_test(
  NAME
  itkModulusImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  --compare
  DATA{${ITK_DATA_ROOT}/Baseline/BasicFilters/ModulusImageFilterTest.png}
  ${ITK_TEST_OUTPUT_DIR}/ModulusImageFilterTest.png
  itkModulusImageFilterTest
  DATA{${ITK_DATA_ROOT}/Input/Spots.png}
  ${ITK_TEST_OUTPUT_DIR}/ModulusImageFilterTest.png
)
itk_add_test(
  NAME
  itkVectorMagnitudeImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  itkVectorMagnitudeImageFilterTest
)
itk_add_test(
  NAME
  itkNormalizeToConstantImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  itkNormalizeToConstantImageFilterTest
)
itk_add_test(
  NAME
  itkEqualTest
  COMMAND
  ITKImageIntensityTestDriver
  itkEqualTest
)
itk_add_test(
  NAME
  itkNotEqualTest
  COMMAND
  ITKImageIntensityTestDriver
  itkNotEqualTest
)
itk_add_test(
  NAME
  itkGreaterEqualTest
  COMMAND
  ITKImageIntensityTestDriver
  itkGreaterEqualTest
)
itk_add_test(
  NAME
  itkGreaterTest
  COMMAND
  ITKImageIntensityTestDriver
  itkGreaterTest
)
itk_add_test(
  NAME
  itkLessEqualTest
  COMMAND
  ITKImageIntensityTestDriver
  itkLessEqualTest
)
itk_add_test(
  NAME
  itkLessTest
  COMMAND
  ITKImageIntensityTestDriver
  itkLessTest
)
itk_add_test(
  NAME
  itkClampImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  itkClampImageFilterTest
)
itk_add_test(
  NAME
  itkNthElementPixelAccessorTest2
  COMMAND
  ITKImageIntensityTestDriver
  itkNthElementPixelAccessorTest2
)
itk_add_test(
  NAME
  itkMagnitudeAndPhaseToComplexImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  --compare
  DATA{Baseline/itkMagnitudeAndPhaseToComplexImageFilterTestBaseline.mha}
  ${ITK_TEST_OUTPUT_DIR}/itkMagnitudeAndPhaseToComplexImageFilterTest.mha
  itkMagnitudeAndPhaseToComplexImageFilterTest
  DATA{Input/itkBrainSliceComplexMagnitude.mha}
  DATA{Input/itkBrainSliceComplexPhase.mha}
  ${ITK_TEST_OUTPUT_DIR}/itkMagnitudeAndPhaseToComplexImageFilterTest.mha
)
itk_add_test(
  NAME
  itkRoundImageFilterTest
  COMMAND
  ITKImageIntensityTestDriver
  itkRoundImageFilterTest
)
itk_add_test(
  NAME
  itkDiscreteHessianGaussianImageFunctionTest
  COMMAND
  ITKImageIntensityTestDriver
  --compare
  DATA{Baseline/itkDiscreteHessianGaussianImageFunctionTest.mha}
  ${ITK_TEST_OUTPUT_DIR}/itkDiscreteHessianGaussianImageFunctionTest.mha
  itkDiscreteHessianGaussianImageFunctionTest
  DATA{${ITK_DATA_ROOT}/Input/cthead1.png}
  ${ITK_TEST_OUTPUT_DIR}/itkDiscreteHessianGaussianImageFunctionTest.mha
  2.0
  0.01
  32
)
itk_add_test(
  NAME
  itkDiscreteGradientMagnitudeGaussianImageFunctionTest01
  COMMAND
  ITKImageIntensityTestDriver
  --compare
  DATA{Baseline/itkDiscreteGradientMagnitudeGaussianImageFunctionTest01.png}
  ${ITK_TEST_OUTPUT_DIR}/itkDiscreteGradientMagnitudeGaussianImageFunctionTest01.png
  itkDiscreteGradientMagnitudeGaussianImageFunctionTest
  DATA{${ITK_DATA_ROOT}/Input/cthead1.png}
  ${ITK_TEST_OUTPUT_DIR}/itkDiscreteGradientMagnitudeGaussianImageFunctionTest01.png
  2.0
  0.01
  32
  0
  1
)
itk_add_test(
  NAME
  itkDiscreteGradientMagnitudeGaussianImageFunctionTest02
  COMMAND
  ITKImageIntensityTestDriver
  --compare-MD5
  ${ITK_TEST_OUTPUT_DIR}/itkDiscreteGradientMagnitudeGaussianImageFunctionTest02.png
  de1904605e667018baaa3f73c5e5c220
  itkDiscreteGradientMagnitudeGaussianImageFunctionTest
  DATA{${ITK_DATA_ROOT}/Input/cthead1.png}
  ${ITK_TEST_OUTPUT_DIR}/itkDiscreteGradientMagnitudeGaussianImageFunctionTest02.png
  1.5
  0.03
  64
  1
  1
)
itk_add_test(
  NAME
  itkDiscreteGradientMagnitudeGaussianImageFunctionTestUseImageSpacingOff
  COMMAND
  ITKImageIntensityTestDriver
  --compare-MD5
  ${ITK_TEST_OUTPUT_DIR}/itkDiscreteGradientMagnitudeGaussianImageFunctionTestUseImageSpacingOff.png
  de1904605e667018baaa3f73c5e5c220
  itkDiscreteGradientMagnitudeGaussianImageFunctionTest
  DATA{${ITK_DATA_ROOT}/Input/cthead1.png}
  ${ITK_TEST_OUTPUT_DIR}/itkDiscreteGradientMagnitudeGaussianImageFunctionTestUseImageSpacingOff.png
  1.5
  0.03
  64
  1
  0
)
itk_add_test(
  NAME
  itkDiscreteGaussianDerivativeImageFunctionTest01
  COMMAND
  ITKImageIntensityTestDriver
  --compare
  DATA{Baseline/itkDiscreteGaussianDerivativeImageFunctionTest01.png}
  ${ITK_TEST_OUTPUT_DIR}/itkDiscreteGaussianDerivativeImageFunctionTest01.png
  itkDiscreteGaussianDerivativeImageFunctionTest
  DATA{${ITK_DATA_ROOT}/Input/cthead1.png}
  ${ITK_TEST_OUTPUT_DIR}/itkDiscreteGaussianDerivativeImageFunctionTest01.png
  1
  2.0
  0.01
  32
  0
)
itk_add_test(
  NAME
  itkDiscreteGaussianDerivativeImageFunctionTest02
  COMMAND
  ITKImageIntensityTestDriver
  --compare-MD5
  ${ITK_TEST_OUTPUT_DIR}/itkDiscreteGaussianDerivativeImageFunctionTest02.png
  488a4bf5daa08cadb3e8b1018a3fe5c0
  itkDiscreteGaussianDerivativeImageFunctionTest
  DATA{${ITK_DATA_ROOT}/Input/cthead1.png}
  ${ITK_TEST_OUTPUT_DIR}/itkDiscreteGaussianDerivativeImageFunctionTest02.png
  2
  1.5
  0.03
  16
  1
)

set(
  ITKImageIntensityGTests
  itkBitwiseOpsFunctorsTest.cxx
  itkArithmeticOpsFunctorsTest.cxx
)

if(MSVC)
  # disable false warning about floating division by zero
  # Floating division by zero is defined unlike integer division
  set_source_files_properties(
    itkArithmeticOpsFunctorsTest.cxx
    PROPERTIES
      COMPILE_FLAGS
        -wd4723
  )
endif()

creategoogletestdriver(ITKImageIntensity "${ITKImageIntensity-Test_LIBRARIES}" "${ITKImageIntensityGTests}")
